Taller VaR Simulación Histórica y CVaR
--------------------------------------
Utilizar el archivo Datos primer examen 01-2020.csv para resolver el
taller.
Importar datos
~~~~~~~~~~~~~~
.. code:: r
datos = read.csv("Datos primer examen 01-2020.csv", sep = ";", header = T)
.. code:: r
head(datos)
tail(datos)
.. raw:: html
A data.frame: 6 × 5
| Fecha | ECO | ISA | NUTRESA | PFBCOLOM |
| <fct> | <int> | <int> | <dbl> | <dbl> |
1 | 31/01/2010 | 2415 | 12280 | 19977.2 | 20825.2 |
2 | 07/02/2010 | 2480 | 12540 | 20535.4 | 21024.5 |
3 | 14/02/2010 | 2495 | 12740 | 20635.1 | 21921.3 |
4 | 21/02/2010 | 2560 | 12880 | 20455.6 | 22140.5 |
5 | 28/02/2010 | 2625 | 12700 | 20834.5 | 21941.2 |
6 | 07/03/2010 | 2680 | 12600 | 20734.8 | 21961.1 |
.. raw:: html
A data.frame: 6 × 5
| Fecha | ECO | ISA | NUTRESA | PFBCOLOM |
| <fct> | <int> | <int> | <dbl> | <dbl> |
517 | 22/12/2019 | 3340 | 19380 | 25100 | 45800 |
518 | 29/12/2019 | 3380 | 20300 | 25280 | 45180 |
519 | 05/01/2020 | 3400 | 19660 | 25140 | 44380 |
520 | 12/01/2020 | 3385 | 19520 | 25180 | 45880 |
521 | 19/01/2020 | 3290 | 19380 | 25220 | 45800 |
522 | 26/01/2020 | 3180 | 18800 | 24760 | 44700 |
Matriz de precios
~~~~~~~~~~~~~~~~~
.. code:: r
precios=datos[,-1]
precios = ts(precios)
Nombres de las acciones
~~~~~~~~~~~~~~~~~~~~~~~
.. code:: r
nombres = colnames(precios)
nombres
.. raw:: html
- 'ECO'
- 'ISA'
- 'NUTRESA'
- 'PFBCOLOM'
Matriz de rendimientos
~~~~~~~~~~~~~~~~~~~~~~
.. code:: r
rendimientos = diff(log(precios))
Cantidad de acciones
~~~~~~~~~~~~~~~~~~~~
.. code:: r
acciones = ncol(precios)
acciones
.. raw:: html
4
Cantidad de rendimientos
~~~~~~~~~~~~~~~~~~~~~~~~
.. code:: r
numero_rendimientos = nrow(rendimientos)
numero_rendimientos
.. raw:: html
521
Portafolio de inversión
~~~~~~~~~~~~~~~~~~~~~~~
El portafolio de inversión está valorado en mil millones de pesos.
Se tiene invertido la misma proporción en cada acción.
.. code:: r
proporciones = c(0.25, 0.25, 0.25, 0.25)
valor_portafolio = 1000000000
valor_mercado_acciones = proporciones*valor_portafolio
valor_mercado_acciones
.. raw:: html
- 2.5e+08
- 2.5e+08
- 2.5e+08
- 2.5e+08
VaR Simulación Histórica y CVaR en términos porcentuales
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Nivel de confianza del 99% ``NC = 0.99``
Horizonte de tiempo: semanal ``t = 1``. En este método no se puede
escalar el tiempo, es decir, si la frecuencia de los rendimientos es
semanal, el VaR y CVaR quedan semanales. Para otros horizontes de tiempo
se debe utilizar otra base de datos con frecuencia en el tiempo
distinta. Por tanto, no se utiliza en el código ``t = 1``.
.. code:: r
NC = 0.99
VaR individuales
~~~~~~~~~~~~~~~~
.. code:: r
VaR_individuales_SH_percentil = vector()
for(i in 1:acciones){
VaR_individuales_SH_percentil[i] = abs(quantile(rendimientos[,i],1 - NC))
}
VaR_individuales_SH_percentil
.. raw:: html
- 0.100017529037464
- 0.0747062638979077
- 0.0623792449456534
- 0.0746798926612424
CVaR individuales
~~~~~~~~~~~~~~~~~
.. code:: r
CVaR = vector()
for(i in 1:acciones){
CVaR[i] = abs(mean(tail(sort(rendimientos[,i], decreasing = T), floor(nrow(rendimientos)*(1-NC)))))
}
CVaR
.. raw:: html
- 0.131734096471733
- 0.104054311101083
- 0.0763919471659559
- 0.0898571003585143
Rendimientos del portafolio de inversión
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code:: r
rendimientos_portafolio = vector()
for(i in 1:numero_rendimientos){
rendimientos_portafolio[i] = sum(rendimientos[i,]*proporciones)
}
VaR portafolio de inversión
~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code:: r
VaR_portafolio_SH_percentil = abs(quantile(rendimientos_portafolio, 1 - NC))
VaR_portafolio_SH_percentil
.. raw:: html
1%: 0.0570097464552412
CVaR portafolio de inversión
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code:: r
CVaR_portafolio = abs(mean(tail(sort(rendimientos_portafolio, decreasing = T), floor(nrow(rendimientos)*(1 - NC)))))
CVaR_portafolio
.. raw:: html
0.0700265657963683
Preguntas
~~~~~~~~~
1. Con un nivel de confianza del 99%, ¿cuál es el VaR semanal de la acción de ECO?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code:: r
NC = 0.99
VaR_individuales_SH_percentil = vector()
for(i in 1:acciones){
VaR_individuales_SH_percentil[i] = abs(quantile(rendimientos[,i], 1 - NC))
}
VaR_individuales_SH_percentil[1]
VaR_individuales_SH_percentil[1]*valor_mercado_acciones[1]
.. raw:: html
0.100017529037464
.. raw:: html
25004382.259366
Respuesta en términos porcentuales: 10,00%
Respuesta en términos monetarios: $25.004.382
2. Con un nivel de confianza del 95%, ¿cuál es el VaR semanal de la acción de ECO?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code:: r
NC = 0.95
VaR_individuales_SH_percentil = vector()
for(i in 1:acciones){
VaR_individuales_SH_percentil[i] = abs(quantile(rendimientos[,i], 1 - NC))
}
VaR_individuales_SH_percentil[1]
VaR_individuales_SH_percentil[1]*valor_mercado_acciones[1]
.. raw:: html
0.0636256958802113
.. raw:: html
15906423.9700528
Respuesta en términos porcentuales: 6,36%
Respuesta en términos monetarios: $15.906.424
3. Con un nivel de confianza del 99%, ¿cuál es el VaR semanal de la acción de Nutresa?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code:: r
NC = 0.99
VaR_individuales_SH_percentil = vector()
for(i in 1:acciones){
VaR_individuales_SH_percentil[i] = abs(quantile(rendimientos[,i], 1 - NC))
}
VaR_individuales_SH_percentil[3]
VaR_individuales_SH_percentil[3]*valor_mercado_acciones[1]
.. raw:: html
0.0623792449456534
.. raw:: html
15594811.2364133
Respuesta en términos porcentuales: 6,24%
Respuesta en términos monetarios: $15.594.811
4. Con un nivel de confianza del 95%, ¿cuál es el VaR semanal de la acción de Nutresa?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code:: r
NC = 0.95
VaR_individuales_SH_percentil = vector()
for(i in 1:acciones){
VaR_individuales_SH_percentil[i] = abs(quantile(rendimientos[,i], 1 - NC))
}
VaR_individuales_SH_percentil[3]
VaR_individuales_SH_percentil[3]*valor_mercado_acciones[1]
.. raw:: html
0.0370702585040465
.. raw:: html
9267564.62601163
Respuesta en términos porcentuales: 3,71%
Respuesta en términos monetarios: $9.267.565
5. Con un nivel de confianza del 99%, ¿cuál es el CVaR semanal de la acción de ISA?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code:: r
NC = 0.99
CVaR = vector()
for(i in 1:acciones){
CVaR[i] = abs(mean(tail(sort(rendimientos[,i], decreasing = T), floor(nrow(rendimientos)*(1 - NC)))))
}
CVaR[2]
CVaR[2]*valor_mercado_acciones[2]
.. raw:: html
0.104054311101083
.. raw:: html
26013577.7752708
Respuesta en términos porcentuales: 10,41%
Respuesta en términos monetarios: $26.013.578
6. Con un nivel de confianza del 95%, ¿cuál es el CVaR semanal de la acción de ISA?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code:: r
NC = 0.95
CVaR = vector()
for(i in 1:acciones){
CVaR[i] = abs(mean(tail(sort(rendimientos[,i], decreasing = T), floor(nrow(rendimientos)*(1 - NC)))))
}
CVaR[2]
CVaR[2]*valor_mercado_acciones[2]
.. raw:: html
0.0701004864115367
.. raw:: html
17525121.6028842
Respuesta en términos porcentuales: 7,01%
Respuesta en términos monetarios: $17.525.122
7. Con un nivel de confianza del 99%, ¿cuál es el VaR semanal del portafolio de inversión?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code:: r
NC = 0.99
VaR_portafolio_SH_percentil = abs(quantile(rendimientos_portafolio, 1 - NC))
VaR_portafolio_SH_percentil
VaR_portafolio_SH_percentil*valor_portafolio
.. raw:: html
1%: 0.0570097464552412
.. raw:: html
1%: 57009746.4552412
Respuesta en términos porcentuales: 5,70%
Respuesta en términos monetarios: $57.009.746
8. Con un nivel de confianza del 95%, ¿cuál es el VaR semanal del portafolio de inversión?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code:: r
NC = 0.95
VaR_portafolio_SH_percentil = abs(quantile(rendimientos_portafolio, 1 - NC))
VaR_portafolio_SH_percentil
VaR_portafolio_SH_percentil*valor_portafolio
.. raw:: html
5%: 0.0346490917710773
.. raw:: html
5%: 34649091.7710773
Respuesta en términos porcentuales: 3,46%
Respuesta en términos monetarios: $34.649.092
9. Con un nivel de confianza del 99%, ¿cuál es el CVaR semanal del portafolio de inversión?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code:: r
NC = 0.99
CVaR_portafolio = abs(mean(tail(sort(rendimientos_portafolio,decreasing = T), floor(nrow(rendimientos)*(1 - NC)))))
CVaR_portafolio
CVaR_portafolio*valor_portafolio
.. raw:: html
0.0700265657963683
.. raw:: html
70026565.7963683
Respuesta en términos porcentuales: 7,00%
Respuesta en términos monetarios: $70.026.566
10. Con un nivel de confianza del 99%, ¿cuál es el Beneficio por Diversificación semanal del portafolio de inversión?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code:: r
NC = 0.99
VaR_individuales_SH_percentil=vector()
for(i in 1:acciones){
VaR_individuales_SH_percentil[i] = abs(quantile(rendimientos[,i], 1 - NC)*valor_mercado_acciones[i])
}
VaR_portafolio_SH_percentil = abs(quantile(rendimientos_portafolio, 1 - NC))*valor_portafolio
BD = sum(VaR_individuales_SH_percentil) - VaR_portafolio_SH_percentil
BD
.. raw:: html
1%: 20935986.1803257
Respuesta: $20.935.986
11. Con un nivel de confianza del 95%, ¿cuál es el Beneficio por Diversificación semanal del portafolio de inversión?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code:: r
NC = 0.95
VaR_individuales_SH_percentil=vector()
for(i in 1:acciones){
VaR_individuales_SH_percentil[i] = abs(quantile(rendimientos[,i], 1 - NC)*valor_mercado_acciones[i])
}
VaR_portafolio_SH_percentil = abs(quantile(rendimientos_portafolio, 1 - NC))*valor_portafolio
BD = sum(VaR_individuales_SH_percentil) - VaR_portafolio_SH_percentil
BD
.. raw:: html
5%: 15479650.510801
Respuesta: $15.479.651